package com.wwu.system.entity.server;

import cn.hutool.core.util.NumberUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;

/**
 * 服务器磁盘信息实体类
 * @author 一蓑烟雨
 * @version 1.0.0
 * @date 2022-05-17 21:38
 **/
@Data
@Accessors(chain = true)
@ApiModel(value="Disc:服务器磁盘信息实体", description="服务器磁盘信息实体")
public class Disc implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "盘符路径(名称)")
    private String discName;

    @ApiModelProperty(value = "盘符类型")
    private String discType;

    @ApiModelProperty(value = "文件类型")
    private String fileType;

    @ApiModelProperty(value = "总大小(G)")
    private double discTotal;

    @ApiModelProperty(value = "空闲大小(G)")
    private double discIdleTotal;

    @ApiModelProperty(value = "已使用大小(G)")
    private double discUsedTotal;

    @ApiModelProperty(value = "磁盘使用率(%)")
    private double discUsedRate;

    /** 自定义总大小(G)get方法 */
    public double getDiscTotal() {
        return NumberUtil.round(NumberUtil.div(discTotal,(1024*1024*1024)),2).doubleValue();
    }

    /** 自定义空闲大小(G)get方法 */
    public double getDiscIdleTotal() {
        return NumberUtil.round(NumberUtil.div(discIdleTotal,(1024*1024*1024)),2).doubleValue();
    }

    /** 自定义已使用大小(G)get方法 */
    public double getDiscUsedTotal() {
        return NumberUtil.round(NumberUtil.div(discUsedTotal,(1024*1024*1024)),2).doubleValue();
    }

    /** 自定义磁盘使用率get方法 */
    public double getDiscUsedRate() {
        return NumberUtil.round(NumberUtil.mul(discUsedTotal/discTotal,100),2).doubleValue();
    }
}
